package main

import "fmt"

//全局变量都是可以不使用的,但是局部变量是一定被使用的,这点要注意
//在全局变量中无法使用 变量名:=值的定义格式
//基本类型默认值都是零值

//定义变量的基本格式  var 变量名 类型 = 值
var s1 int = 10

//定义变量不赋值 var 变量名 类型
var s2 int

//定义变量不自定义类型  var 变量名 = 值
var s3 = 10

//在一个var 定义多个变量
var s4, s5 = 1, 2

//定义多个变量
/*var {
	 ....
   }*/
var (
	//注意定义多个变量的时候不能用var,里面可以定义的格式如下
	//1 变量名字 = 值
	//2 变量名字 类型 = 值  但是不推荐
	//3 变量名字 类型
	name1     = "哈哈"
	age1  int = 10
	isOk1 bool
)

func main() {

	//1.定义变量  变量名:=值的定义格式
	s6:="haha"
	fmt.Printf("s6:%s\n", s6)

	//2.go 两个变量交换值可以直接用赋值交换
	s4, s5 = s5, s4
	fmt.Printf("s4:%v\n",s4)
	fmt.Printf("s5:%v\n",s5)

	//3.局部变量和全局变量可以同时用一个变量名字
	//如下s4在全局变量中出现是int类型的变量
	//但是在
	s7 := "哈哈"
	fmt.Printf("s7:%s\n", s7)

	//4.赋值操作
	fmt.Printf("isOk1默认值:%v\n",isOk1)
	isOk1=true
	fmt.Printf("isOk1赋值操作以后的值:%v\n",isOk1)
}
